﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class admintractor_Chanel : System.Web.UI.Page
{
    ChanelBusiness channel = new ChanelBusiness();
    private int id = Helper.getQuery("id");
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindDrop();
            bindTreview(TreeView1.Nodes, 0);
            if (id > 0)
            {
                butAdd.Text = "Sửa";
                butDelete.Visible = true;
                ChannelesEntities c = channel.getItem(id);
                txtName.Text = c._name;
                dropParent.SelectedValue = c._parent.ToString();
                //Response.Write(c._channelLock.Trim());
                if (c._channelLock.Equals("True")||(c._channelLock.Equals("1")))
                {
                    cbLock.Checked = true;
                }
                else
                {
                    cbLock.Checked = false;
                }
                if (c._priority == channel.Max(c._parent))
                { imDown.Visible = false; }
                else
                {
                    imDown.Visible = true;
                }

                if (c._priority == channel.Min(c._parent))
                { IbUp.Visible = false; }
                else
                {
                    IbUp.Visible = true;
                }
            }
            else
            {
                butAdd.Text = "Thêm mới";
                butDelete.Visible = false;
            }
        }
    }
    public void bindDrop()
    {
        ArrayList items = channel.getChanel();
        dropParent.DataSource = items;
        dropParent.DataTextField = "_name";
        dropParent.DataValueField = "_id";
        dropParent.DataBind();
        dropParent.Items.Add(new ListItem("-Gốc-", 0.ToString()));
        dropParent.SelectedValue = 0.ToString();
    }

    public void bindTreview(TreeNodeCollection nodes, int channel_parent)
    {      
        ArrayList items = channel.getChanel();
        if (items != null)
        {
            ChannelesEntities item = null;
            for (int i = 0; i < items.Count; i++)
            {
                item = (ChannelesEntities)items[i];
                string link = "Chanel.aspx?id=" + item._id;
                if (item._parent == channel_parent)
                {
                    TreeNode tn = new TreeNode(item._name, item._id.ToString(), null, link, "");
                    tn.SelectAction = TreeNodeSelectAction.Expand;
                    nodes.Add(tn);
                    bindTreview(tn.ChildNodes, item._id);
                }
            }
       }
    }
    protected void IbUp_Click(object sender, ImageClickEventArgs e)
    {
        if (id > 0)
        {           
            if (channel.UpChanel(id))
            {
                Response.Redirect("Chanel.aspx");
            }
            else
            {
                Label1.Text = "Không thay đổi được thứ tự";
            }
        }
    }
    protected void imDown_Click(object sender, ImageClickEventArgs e)
    {
        if (id > 0)
        {
            if (channel.DrownChanel(id))
            {
                Response.Redirect("Chanel.aspx");
            }
            else
            {
                Label1.Text = "Không thay đổi được thứ tự";
            }
        }
    }
    protected void butAdd_Click(object sender, EventArgs e)
    {
        if (!txtName.Text.Trim().Equals(""))
        {
            ChannelesEntities item = new ChannelesEntities();
            item._name = txtName.Text.Trim();
            item._parent = int.Parse(dropParent.SelectedValue);
            item._channelLock = cbLock.Checked ? "1" : "0";
            if (id > 0)
            {
                item._id = id;
                if (channel.edit(item))
                {
                    Response.Redirect("Chanel.aspx");
                }
                else
                {
                    Label1.Text = "Không thay đổi được!";
                }
            }
            else
            {
                if (channel.add(item))
                {
                    Response.Redirect("Chanel.aspx");
                }
                else
                {
                    Label1.Text = "Xẩy ra nỗi trong quá trình thực hiện";
                }
            }
        }
        else
        {
            Label1.Text = "Nhập thiếu thông tin!";
        }

    }
    protected void butDelete_Click(object sender, EventArgs e)
    {
        if (id > 0)
        {
                if (channel.delete(id))
                {
                    Response.Redirect("Chanel.aspx");
                }
                else
                {
                    Label1.Text = "Xẩy ra nỗi trong quá trình thực hiện";
                }
        }
    }
}
